public class Kantine
{
    private Kassa kassa;
    private KassaRij kassarij;
    private KantineAanbod kantineAanbod;
    
    /**
     * Constructor
     */
    public Kantine()
    {
        kassarij = new KassaRij();
        kassa = new Kassa(kassarij);
    }
    
    /**
     * De getter voor de instantie variabele kassa, zodat de methoden hiervan indirect
     * kunnen worden aangeroepen door superklasses
     * @return kassa
     */
    public Kassa getKassa()
    {
        return kassa;
    }
    
    /**
     * Getter voor kantine aanbod
     */
    public KantineAanbod getKantineAanbod()
    {
        return kantineAanbod;
    }
    
    /**
     * Setter voor kantine aanbod
     */
    public void setKantineAanbod(KantineAanbod kantineAanbod)
    {
        this.kantineAanbod = kantineAanbod;
    }
    
    /**
     * In deze methode kiest een persoon met een dienblad
     * de artikelen in artikelnamen
     * @param persoon
     * @param artikelnamen
     *
    public void loopPakSluitAan(Persoon persoon, String[] artikelnamen)
    {
        for(int i = 0; i < artikelnamen.length; i++) {
            persoon.getDienblad().voegToe(kantineAanbod.getArtikel(artikelnamen[i]));
        }
    }
    */
    
    /**
     * In deze methode wordt een persoon en Dienblad gemaakt en aan elkaar
     * gekoppeld. Maak twee artikelen aan en plaats deze op het dienblad.
     * Tenslotte sluit de persoon zich aan bij de rij voor de kassa.
     */
    public void loopPakSluitAan()
    {
        Persoon persoon1 = new Persoon("123", "Wim", "B", 1986, 2, 11, "m");
        Dienblad dienblad1 = new Dienblad();
        Artikel artikel1 = new Artikel("Kaas", 1.0);
        Artikel artikel2 = new Artikel("Boter", 2.0);
        
        persoon1.pakDienblad(dienblad1);
        persoon1.getDienblad().voegToe(artikel1);
        persoon1.getDienblad().voegToe(artikel2);
        
        kassarij.sluitAchteraan(persoon1);
    }
    
    /**
     * Deze methode handelt de rij af
     */
    public void verwerkRijVoorKassa()
    {
        Persoon persoon;
        while((persoon = kassarij.eerstePersoonInRij()) != null)
        {
            kassa.rekenAf(persoon);
        }
    }
}
